package model;

import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.JoinColumn;

@Entity
@Table(name="Producto")
public class Producto {
	private int id_producto;
	private String nombre;
	private String descripcion;
	private Parametro unidad;
	private Boolean perecible;
	private Date fechai;
	private Date fechav;
	private Parametro tipoProducto;
	private Almacen almacenProducto;
	
	public Producto(){
		
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_producto")
	public int getId_producto() {
		return id_producto;
	}

	public void setId_producto(int id_producto) {
		this.id_producto = id_producto;
	}

	@Column(name = "nombre", length = 50)
	public String getNombre() {
		return nombre;
	}
	
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Column(name = "descripcion", length = 50)
	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "unidad", nullable = false)
	public Parametro getUnidad() {
		return unidad;
	}

	public void setUnidad(Parametro unidad) {
		this.unidad = unidad;
	}

	@JoinColumn(name = "perecible")
	public Boolean getPerecible() {
		return perecible;
	}

	public void setPerecible(Boolean perecible) {
		this.perecible = perecible;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "tipoProducto", nullable = false)
	public Parametro getTipoProducto() {
		return tipoProducto;
	}

	public void setTipoProducto(Parametro tipoProducto) {
		this.tipoProducto = tipoProducto;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "almacenProducto", nullable = false)
	public Almacen getAlmacenProducto() {
		return almacenProducto;
	}

	public void setAlmacenProducto(Almacen almacenProducto) {
		this.almacenProducto = almacenProducto;
	}

	public Date getFechai() {
		return fechai;
	}

	public void setFechai(Date fechai) {
		this.fechai = fechai;
	}

	public Date getFechav() {
		return fechav;
	}

	public void setFechav(Date fechav) {
		this.fechav = fechav;
	}
}
